Various methods are available for acquiring three-dimensional distance data (e.g., depth or disparity data) of a scene that includes one or more objects. Such techniques include stereo-based, time-of-flight-based and encoded-light-based techniques. These techniques generally employ active illumination of the objects in the scene. The active illumination is comprised of a particular range of wavelengths. Further the intensity of the active illumination often is spatially modulated and/or temporally modulated. Some of the incident light is reflected from the objects and is focused onto an array of pixels that are sensitive to the particular range of wavelengths making up the illumination. This sensed light then converted into an electric signal.
Systems that implement the foregoing types of techniques often require significant amounts of power and computational resources. For example, generating the active illumination can consume a relatively large amount of power. Further, in some cases, ambient light (e.g., infra-red background radiation) can obscure the active illumination. In such instances, generating the active illumination is a waste of resources and power.
Some imaging systems employ stereo-based techniques to collect a stereo-image pair of images (e.g., a reference and search image, or a pair of left and right images). Disparity (i.e., 3D data) between the stereo-image pair typically is determined through a matching algorithm that identifies corresponding pixels between the pair of images. Various matching techniques can be employed. For example, stereo-based techniques that do not employ active illumination through the active generation of texture onto objects in the scene typically use semi-global or global block matching algorithms. As no active illumination is employed in such cases, the semi-global or global block matching algorithms must successfully determine the correspondence between the images using only native texture (e.g., object edges, physical texture) which typically is sparse in real-life scenes. These algorithms can be particularly resource intensive with respect to power consumption and use of computational resources. On the other hand, stereo-based techniques that employ active illumination to generate texture onto objects in the scene sometimes employ simple block matching techniques to determine the correspondence between the image pair. Such simple block matching techniques tend to be far less demanding on resources.